.commonMP(@idx) when (@idx > 0) {
  .commonMP((@idx - 1));
  .ml@{idx} {
    margin-left: (@idx * 1px);
  }
  .mr@{idx} {
    margin-right: (@idx * 1px);
  }
  .mt@{idx} {
    margin-top: (@idx * 1px);
  }
  .mb@{idx} {
    margin-bottom: (@idx * 1px);
  }
  .pl@{idx} {
    padding-left: (@idx * 1px);
  }
  .pr@{idx} {
    padding-right: (@idx * 1px);
  }
  .pt@{idx} {
    padding-top: (@idx * 1px);
  }
  .pb@{idx} {
    padding-bottom: (@idx * 1px);
  }
  .width@{idx} {
    width: (@idx * 1px);
  }
  .height@{idx} {
    height: (@idx * 1px);
  }
  .font@{idx} {
    font-size: (@idx * 1px);
  }
}

.commonWeight(@idx) when (@idx >= 100) {
  .commonWeight((@idx - 100));
  .weight@{idx} {
    font-weight: (@idx);
  }
}

.commonMP(200);
.commonWeight(700);

.text-rt {
  text-align: right
}

.text-lt {
  text-align: left
}

.text-cen {
  text-align: center
}

.float-lt {
  float: left;
}

.float-rt {
  float: right
}

/* 超出省略 等字体控制 */
.ell {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  word-break: break-all;
}
.line1 {
  -webkit-line-clamp: 1;
}
.line2 {
  -webkit-line-clamp: 2;
}

/* cursor */
.point {
  cursor: pointer;
}

.clearfix {
  &:after {
    visibility: hidden;
    display: block;
    font-size: 0;
    content: ' ';
    clear: both;
    height: 0;
  }
}

.line-box {
  display: inline;
}

.line-block {
  display: inline-block;
}

.block-box {
  display: block;
}

.de-btn {
  position: relative;
  padding: 8px 20px;
  height: 38px;
  text-align: center;
  outline: none;
  border: 1px solid transparent;
  color: #fff;
  text-transform: uppercase;
  cursor: pointer;
  overflow: hidden;
  background: linear-gradient(90deg, #03a9f4, #f441a5, #ffeb3b, #03a9f4);
  background-size: 400%;
  border-radius: 20px;

  &:hover {
    animation: animate 8s linear infinite;
  }

  &::before {
    content: '';
    position: absolute;
    top: -5px;
    left: -5px;
    right: -5px;
    bottom: -5px;
    z-index: -1;
    background: linear-gradient(90deg, #03a9f4, #f441a5, #ffeb3b, #03a9f4);
    background-size: 400%;
    border-radius: 40px;
    opacity: 0;
    transition: 0.5s;
  }

  &:hover::before {
    filter: blur(20px);
    opacity: 1;
    animation: animate 8s linear infinite;
  }
}

@keyframes animate {
  0% {
    background-position: 0%;
  }

  100% {
    background-position: 400%;
  }
}